package com.wolfking.spi;

import java.lang.annotation.*;

/**
 * spi service的动态代理的接口
 * 经过隔壁老王处理的JDK动态代理的接口
 *
 * @author 赵伟伟(wolfking)
 * created on 2019-09-29 13:33
 */
@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface SpiInterface {
    /**
     * 路由选择的code
     *
     * @return
     */
    String[] code() default "default";

    /**
     * 代理的类型
     * 默认使用JDK动态代理
     *
     * @return
     */
    ProxyType proxy() default ProxyType.JDK;

    /**
     * 默认的spiCode
     * 为空的情况下使用
     *
     * @return
     */
    String defaultCode() default "";

}
